package com.lh.jianzhioffer.专项练习.字符串;

import java.sql.Statement;

/**
 * @author: linghao
 * @since: 2023/3/4
 *
 * 给定一个字符串 s ，请计算这个字符串中有多少个回文子字符串。
 *
 * 具有不同开始位置或结束位置的子串，即使是由相同的字符组成，也会被视作不同的子串
 *
 * 中心扩展发：奇数是单个中心，偶数中心有两个数字
 */
public class 回文子字符串的个数020 {

    public int countSubstrings(String s) {
        if(null==s || s.length()==0){
            return 0;
        }

        int count=0;
        for(int i=0;i<s.length();i++){
            count += check(s,i,i);
            count += check(s,i,i+1);
        }
        return count;
    }

    private int check(String s, int start, int end) {
        int cnt = 0;
        while (start>=0 && end <= s.length()-1 && s.charAt(start) == s.charAt(end)){
            start--;
            end++;
            cnt++;
        }
        return cnt;
    }
}
